package com.xy.api.service.system;

import com.xy.api.model.dto.system.UserInfoDTO;
import com.xy.api.model.request.system.LoginRequest;
import com.xy.api.model.request.system.KeywordPageRequest;
import com.xy.api.model.response.Rows;

public interface IUserService {

    /**
     * 登陆
     *
     * @param request
     * @return
     */
    UserInfoDTO login(LoginRequest request);

    /**
     * 根据token获取用户信息
     *
     * @return
     */
    UserInfoDTO getUserInfo();

    /**
     * 登出
     *
     * @param request
     */
    void logout(UserInfoDTO request);

    /**
     * 查询用户信息列表
     *
     * @param request
     * @return
     */
    Rows<UserInfoDTO> queryUserList(KeywordPageRequest request);

    /**
     * 查询用户详情
     *
     * @param userId
     * @return
     */
    UserInfoDTO queryUserDetail(Long userId);

    /**
     * 编辑用户（支持新增和编辑）
     *
     * @param userInfo
     */
    void editUser(UserInfoDTO userInfo);

    /**
     * 删除用户
     *
     * @param userId
     */
    void deleteUser(Long userId);
}
